Docs: harden #17 — merged-manifest permission, captureBodies default, TimingPhase labels#23
Merged
Merged
Conversation
…use, TimingPhase labels After this commit, the README + KDoc document the merged-manifest POST_NOTIFICATIONS permission, the captureBodies default + opt-out/start-paused mechanism, and the TimingPhase label vocabulary. Closes #17. - POST_NOTIFICATIONS: README now states the library declares the permission and it surfaces in the consumer's merged manifest, while the library never requests it at runtime (verified: no requestPermissions call anywhere in :sharingan). - captureBodies: documented that body capture defaults to ON, that captureBodies = false drops body text, and that Sharingan.setRecording(false) starts paused across all protocols. - TimingPhase: KDoc on the type spells out the conventional DNS/Connect/TLS/TTFB/Download vocabulary and notes label is free-form, with the Ktor plugin emitting the TTFB/Download split. Docs only — no code behavior change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #17. Docs-only pass bundling the three documentation gaps from launch review. No code behavior change.
Acceptance criteria → what was written
1. POST_NOTIFICATIONS appears in the consumer's merged manifest
README.md(Android section) now states explicitly thatsharingan/src/androidMain/AndroidManifest.xmldeclares<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />, so manifest merger surfaces it in the consumer's merged manifest. It also documents the verified guarantee that the library never requests the permission at runtime — your app decides whether to ask — and that thesharingan-nooprelease artifact declares nothing, so the permission doesn't reach release builds.Verification: grepped the whole
:sharingansource tree forrequestPermissions/ActivityCompat.request/registerForActivityResult/RequestPermission— zero hits. The only runtime request lives in the sample app (MainActivity), not the library.2. captureBodies default + start-paused / opt-out
README.md(HTTP section) now documents that body capture is ON by default (captureBodies = true, confirmed atSharinganKtor.kt:30), thatcaptureBodies = falsekeeps metadata but drops body text, and thatSharingan.setRecording(false)at startup lets a team start paused and capture nothing until they flip it on (or use the Android notification's Pause/Resume). Noted that pause spans every protocol, not just HTTP.3. TimingPhase.label vocabulary
Added KDoc on
TimingPhase(HttpEvent.kt) spelling out the conventional waterfall vocabulary in occurrence order —DNS,Connect,TLS,TTFB,Download— and notinglabelis a free-formString(any text renders), with theSharinganKtorplugin emitting theTTFB/Downloadsplit automatically. Real labels derived from code: the Ktor plugin emits"TTFB"/"Download"(SharinganKtor.kt:104-105);PreviewDataexercises the fullDNS/Connect/TLS/TTFB/Downloadset.Discrepancies between the issue and the real code
labelvocabulary), so this PR sharpens existing prose rather than adding net-new claims.captureBodies = false(per-plugin, body-text only) vs.Sharingan.setRecording(false)(global pause, all protocols). Documented both and the distinction.🤖 Generated with Claude Code